home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 576-600 / disk_587 / conlib / c_stuff / libraries / conlib.h
C/C++ Source or Header  |  1992-05-06  |  7KB  |  218 lines

  1. /* Include file for con.library */
  2.  
  3. /* Created from the original assembly source ('con2.i') by Bjørn Reese.
  4. ** C translation by Michael Berg.
  5. ** Note: Target compiler must support 32 bit integers
  6. ** Place this file in <libraries/conlib.h>.
  7. */
  8.  
  9. #ifndef LIBRARIES_CONLIB_H
  10. #define LIBRARIES_CONLIB_H
  11.  
  12. #include <exec/types.h>
  13. #include <exec/libraries.h>
  14. #include <libraries/dos.h>
  15. #include <intuition/intuition.h>
  16.  
  17. #define CONNAME    "con.library"
  18.  
  19. #define CHARDEFSIZE    ((256+7)/8)
  20. #define IGNOREVALUE    (-1)
  21.  
  22. /* Returned by OpenLibrary() */
  23. struct ConBase
  24. {
  25.     struct Node con_LibNode;              /* Library Node */
  26.     BPTR con_SegList;                     /* Segment List [from LoadSeg()] */
  27.     struct IntuitionBase *IntuitionBase;  /* Intuition Base */
  28.     CPTR con_MathBase;                    /* MathFFP Base */
  29. };
  30.  
  31. struct ConHandle
  32. {
  33.     CPTR cnh_CDBase;                /* Base of Console Device */
  34.     struct Window cnh_Window;       /* Our Intuition Window */
  35.     struct MsgPort *cnh_UserPort;   /* UserPort for Window */
  36.     struct Unit *cnh_Unit;          /* ConUnit */
  37.     struct IOStdReq *cnh_WriteIO;   /* Our Write IO Port */
  38.     ULONG cnh_Signal;               /* SignalSet [for Wait()] */
  39.     UWORD cnh_ExLength;             /* Extra space for string formatting */
  40.     UWORD cnh_CursorStatus;         /* Current Cursor Status [on/off] */
  41.     UBYTE cnh_PadSpace;             /* Char for Leading Spaces in Numbers */
  42.     UBYTE cnh_PadZero;              /* Char for Leading Zeros in Numbers */
  43.     UBYTE cnh_PadGroup;             /* Char for Group Classifying */
  44.     UBYTE cnh_PadString;            /* Char for Unused String Positions */
  45.     UBYTE cnh_DecimalPoint;         /* Char for Decimal Point */
  46.     UBYTE cnh_FloatE;               /* Char for Floating Point Exponent */
  47.     UBYTE cnh_EchoTable[CHARDEFSIZE]; /* BitTable of Echo Chars */
  48.     ULONG cnh_UserNote[8];            /* List of Pointers to UserNotes */
  49.     int (*cnh_MsgHandler)();          /* Pointer to a User Message Handler */
  50.     ULONG cnh_Reserved[4];            /* Reserved for future use */
  51. };
  52.  
  53. struct ConInfo
  54. {
  55.     UWORD cin_XPos;            /* Cursor X Position       */
  56.     UWORD cin_YPos;            /* Cursor Y Position       */
  57.     UWORD cin_XSize;        /* Chars per Line          */
  58.     UWORD cin_YSize;        /* Lines in Window         */
  59.     UWORD cin_Styles;        /* Text Styles             */
  60.     UWORD cin_FgCol;        /* Foreground Color        */
  61.     UWORD cin_BgCol;        /* Background Color        */
  62.     ULONG cin_Reserved[4];        /* Reserved for future use */
  63. };
  64.  
  65. struct AcceptStructure
  66. {
  67.     UWORD acc_XStart;        /* Start X Position     */
  68.     UWORD acc_YStart;        /* Start Y Position     */
  69.     UWORD acc_Styles;        /* Text Styles          */
  70.     UWORD acc_FgCol;        /* Foreground Color     */
  71.     UWORD acc_BgCol;        /* Background Color     */
  72.     ULONG acc_ExitFlags;        /* IDCMP Exit Flags     */
  73.     ULONG acc_Class;        /* Copy of im_Class     */
  74.     UWORD acc_Code;            /* Copy of im_Code      */
  75.     UWORD acc_Qualifier;        /* Copy of im_Qualifier */
  76.  
  77.     CPTR  acc_IAddress;        /* Copy of im_IAddress    */
  78.     WORD  acc_MouseX;        /* Copy of im_MouseX      */
  79.     WORD  acc_MouseY;        /* Copy of im_MouseY      */
  80.     ULONG acc_Seconds;        /* Copy of im_Seconds     */
  81.     ULONG acc_Micros;        /* Copy of im_Micros      */
  82.     CPTR  acc_IDCMPWindow;        /* Copy of im_IDCMPWindow */
  83.  
  84.     UBYTE acc_Char;            /* ASCII char      */
  85.     UBYTE acc_Pad001        /* Nothing serious */
  86.  
  87.     UBYTE acc_ValidTable[CHARDEFSIZE];    /* BitTable of Valid Chars */
  88.     UBYTE acc_ExitTable[CHARDEFSIZE];    /* BitTable of Exit Chars  */
  89.     ULONG acc_Reserved[4];            /* Reserved for future use */
  90. };
  91.  
  92. /* Extended AcceptString() Structure */
  93. struct EAcceptStructure
  94. {
  95.     struct AcceptStructure accs_AS; /* Standard acceptstructure header */
  96.     char *accs_InputBuffer;        /* Pointer to Input Buffer */
  97.     char *accs_WorkBuffer;        /* Pointer to Work Buffer  */
  98.     UWORD accs_MaxLength;        /* Maximum Length of Text [incl. NULL] */
  99.     UWORD accs_FieldLen;        /* Length of Input Field [incl. NULL]  */
  100.     UWORD accs_Length;        /* Current Length of Text [excl. NULL] */
  101.     UWORD accs_Position;        /* Current Position in Text            */
  102.     UWORD accs_DispPos;        /* First Displayed Position in Text    */
  103.     ULONG accs_Reserved[4];        /* Reserved for future use             */
  104. };
  105.  
  106. /* Codes for DefineChar() */
  107.  
  108. /* Modes */
  109. #define DEFMODE_ALL    0
  110. #define DEFMODE_NEW    1
  111. #define DEFMODE_ADD    2
  112. #define DEFMODE_REM    3
  113. #define DEFMODE_GET    4
  114.  
  115. /* Pre-defined Tables */
  116. #define DEFALL        (0 << 17)
  117. #define DEFNONE        (1 << 17)
  118. #define DEFALFANUM    (2 << 17)
  119. #define DEFALFA        (3 << 17)
  120. #define DEFNUMERIC    (4 << 17)
  121. #define DEFDECIMAL    (5 << 17)
  122. #define DEFHEX        (6 << 17)
  123. #define DEFOCTAL    (7 << 17)
  124. #define DEFBINARY    (8 << 17)
  125. #define DEFFLOAT    (9 << 17)
  126.  
  127. /* Codes for Cursor() */
  128. #define CURSOROFF    0
  129. #define CURSORON    1
  130.  
  131. /* Codes for Accept() & AcceptString() */
  132.  
  133. /* General Flags */
  134. #define ACCB_ERASE    31
  135. #define ACCF_ERASE    (1 << ACCB_ERASE)
  136.  
  137. /* Accept Flags */
  138. #define ACCB_WAIT    24
  139. #define ACCB_ECHO    25
  140. #define ACCB_UPKEY    26
  141. #define ACCB_DUALKEY    27
  142. #define ACCB_RAWKEY    28
  143.  
  144. #define ACCF_RAWKEY    (1 << ACCB_RAWKEY)
  145. #define ACCF_DUALKEY    (1 << ACCB_DUALKEY)
  146. #define ACCF_UPKEY    (1 << ACCB_UPKEY)
  147. #define ACCF_ECHO    (1 << ACCB_ECHO)
  148. #define ACCF_WAIT    (1 << ACCB_WAIT)
  149.  
  150. /* AcceptString Flags */
  151. #define ACCB_NOSCROLL    15
  152. #define ACCB_NOSTDAMIGA    16
  153. #define ACCB_NOAMIGA    17
  154. #define ACCB_FULLSTOP    18
  155. #define ACCB_LASTEXIT    19
  156. #define ACCB_OVERWRITE    20
  157. #define ACCB_CONTINUE    21
  158. #define ACCB_JUSTIFIED    22
  159.  
  160. #define ACCF_JUSTIFIED    (1 << ACCB_JUSTIFIED)
  161. #define ACCF_CONTINUE    (1 << ACCB_CONTINUE)
  162. #define ACCF_OVERWRITE    (1 << ACCB_OVERWRITE)
  163. #define ACCF_LASTEXIT    (1 << ACCB_LASTEXIT)
  164. #define ACCF_FULLSTOP    (1 << ACCB_FULLSTOP)
  165. #define ACCF_NOAMIGA    (1 << ACCB_NOAMIGA)
  166. #define ACCF_NOSTDAMIGA    (1 << ACCB_NOSTDAMIGA)
  167. #define ACCF_NOSCROLL    (1 << ACCB_NOSCROLL)
  168.  
  169. /* Codes for SetGfx() */
  170. #define SGFB_PLAIN    0
  171. #define SGFB_BOLD    1
  172. #define SGFB_ITALIC    2
  173. #define SGFB_UNDERLINED    3
  174.  
  175. #define SGFF_PLAIN    (1 << SGFB_PLAIN)
  176. #define SGFF_BOLD    (1 << SGFB_BOLD)
  177. #define SGFF_ITALIC    (1 << SGFB_ITALIC)
  178. #define SGFF_UNDERLINED    (1 << SGFB_UNDERLINED)
  179.  
  180. /* Codes for Convert() */
  181.  
  182. /* Modes */
  183. #define CNV_DECIMAL    1
  184. #define CNV_HEX        2
  185. #define CNV_OCTAL    3
  186. #define CNV_BINARY    4
  187.  
  188. /* Attributes */
  189. #define CNV_SIGNED    (1 << 16)
  190. #define CNV_LEADSPACE    (1 << 17)
  191.  
  192. /* Codes for Special Keys */
  193. #define AKEY_NONE    0
  194. #define AKEY_HELP    5
  195. #define AKEY_BS        8
  196. #define AKEY_TAB    9
  197. #define AKEY_LF        10
  198. #define AKEY_RETURN    13
  199. #define AKEY_ARROWRG    17
  200. #define AKEY_ARROWLF    18
  201. #define AKEY_ARROWUP    19
  202. #define AKEY_ARROWDN    20
  203. #define AKEY_ESC    27
  204. #define AKEY_DEL    127
  205. #define AKEY_F1        129
  206. #define AKEY_F2        130
  207. #define AKEY_F3        131
  208. #define AKEY_F4        132
  209. #define AKEY_F5        133
  210. #define AKEY_F6        134
  211. #define AKEY_F7        135
  212. #define AKEY_F8        136
  213. #define AKEY_F9        137
  214. #define AKEY_F10    138
  215. #define AKEY_CSI    155
  216.  
  217. #endif
  218.